<%
# To make changes to this man page:
#
# - For changes to a specific command (appears in the `COMMANDS` section):
#   - Edit the top comment in `Library/Homebrew/cmd/<command>.{rb,sh}`.
#   - Make sure to use the line prefix `#:` for the comments to be recognized as
#     documentation. If in doubt, compare with already documented commands.
# - For other changes: Edit this file.
#
# When done, regenerate the man page and its HTML version by running `brew man`.
%>
brew(1) -- The Missing Package Manager for macOS
================================================

## SYNOPSIS

`brew` `--version`<br>
`brew` <command> [`--verbose`|`-v`] [<options>] [<formula>] ...

## DESCRIPTION

Homebrew is the easiest and most flexible way to install the UNIX tools Apple
didn't include with macOS.

## ESSENTIAL COMMANDS

For the full command list, see the [COMMANDS](#commands) section.

With `--verbose` or `--debug`, many commands print extra debugging information. Note that
these options should only appear after a command.

### `install` <formula>:

Install <formula>.

<formula> is usually the name of the formula to install, but it has other syntaxes which
are listed in the [SPECIFYING FORMULAE](#specifying-formulae) section.

### `uninstall` <formula>:

Uninstall <formula>.

### `list`:

List all installed formulae.

### `search` (<text>|`/`<text>`/`):

Perform a substring search of cask tokens and formula names for <text>. If <text>
is flanked by slashes, it is interpreted as a regular expression.
The search for <text> is extended online to `homebrew/core` and `homebrew/cask`.
If no search term is provided, all locally available formulae are listed.

## COMMANDS

<%= commands %>

## DEVELOPER COMMANDS

<%= developer_commands %>

## GLOBAL OPTIONS

<%= global_options %>

## OFFICIAL EXTERNAL COMMANDS

### `bundle` <subcommand>:

Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask and the Mac App Store.
See `brew bundle --help`.

**Homebrew/homebrew-bundle**: <https://github.com/Homebrew/homebrew-bundle>

### `cask` <subcommand>:

Install macOS applications distributed as binaries. See `brew-cask`(1).

**Homebrew/homebrew-cask**: <https://github.com/Homebrew/homebrew-cask>

### `services` <subcommand>:

Manage background services with macOS' `launchctl`(1) daemon manager.
See `brew services --help`.

**Homebrew/homebrew-services**: <https://github.com/Homebrew/homebrew-services>

## CUSTOM EXTERNAL COMMANDS

Homebrew, like `git`(1), supports external commands. These are executable
scripts that reside somewhere in the `PATH`, named `brew-`<cmdname> or
`brew-`<cmdname>`.rb`, which can be invoked like `brew` <cmdname>. This allows you
to create your own commands without modifying Homebrew's internals.

Instructions for creating your own commands can be found in the docs:
<https://docs.brew.sh/External-Commands>

## SPECIFYING FORMULAE

Many Homebrew commands accept one or more <formula> arguments. These arguments
can take several different forms:

  * The name of a formula:
    e.g. `git`, `node`, `wget`.

  * The fully-qualified name of a tapped formula:
    Sometimes a formula from a tapped repository may conflict with one in
    `homebrew/core`.
    You can still access these formulae by using a special syntax, e.g.
    `homebrew/dupes/vim` or `homebrew/versions/node4`.

  * An arbitrary file or URL:
    Homebrew can install formulae via URL, e.g.
    `https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/git.rb`,
    or from a local path. It can point to either a formula file or a bottle.
    In the case of a URL, the downloaded file will be cached for later use.

## ENVIRONMENT

Note that environment variables must have a value set to be detected. For example, run
`export HOMEBREW_NO_INSECURE_REDIRECT=1` rather than just
`export HOMEBREW_NO_INSECURE_REDIRECT`.

  * `HOMEBREW_ARCH`:
    Linux only: If set, Homebrew will pass the set value to type name to the compiler's
    `-march` option instead of using the default (`-march=native`).

  * `HOMEBREW_ARTIFACT_DOMAIN`:
    If set, instructs Homebrew to prefix all download URLs, including those for bottles,
    with this variable. For example, `HOMEBREW_ARTIFACT_DOMAIN=http://localhost:8080`
    will cause a formula with the URL `https://example.com/foo.tar.gz` to instead
    download from `http://localhost:8080/example.com/foo.tar.gz`.

  * `HOMEBREW_AUTO_UPDATE_SECS`:
    If set, Homebrew will only check for autoupdates once per this seconds interval.

    *Default:* `300`.

  * `HOMEBREW_AWS_ACCESS_KEY_ID`, `HOMEBREW_AWS_SECRET_ACCESS_KEY`:
    When using the `S3` download strategy, Homebrew will look in
    these variables for access credentials (see
    <https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-environment>
    to retrieve these access credentials from AWS). If they are not set,
    the `S3` download strategy will download with a public (unsigned) URL.

  * `HOMEBREW_BAT`:
    If set, Homebrew will use `bat` for the `brew cat` command.

  * `HOMEBREW_BOTTLE_DOMAIN`:
    By default, Homebrew uses `https://homebrew.bintray.com/` as its download
    mirror for bottles. If set, instructs Homebrew to instead use the specified
    URL. For example, `HOMEBREW_BOTTLE_DOMAIN=http://localhost:8080` will
    cause all bottles to download from the prefix `http://localhost:8080/`.

  * `HOMEBREW_BREW_GIT_REMOTE`:
    By default, Homebrew uses `https://github.com/Homebrew/brew` as its
    Homebrew/brew `git`(1) remote. If set, instructs Homebrew to instead use
    the specified URL.

  * `HOMEBREW_BROWSER`:
    If set, Homebrew uses this setting as the browser when opening project
    homepages, instead of the OS default browser.

  * `HOMEBREW_CACHE`:
    If set, instructs Homebrew to use the specified directory as the download cache.

    *Default:* `~/Library/Caches/Homebrew`.

  * `HOMEBREW_CORE_GIT_REMOTE`:
    By default, Homebrew uses `https://github.com/Homebrew/homebrew-core` (or
    `https://github.com/Homebrew/linuxbrew-core`) as its Homebrew/homebrew-core
    `git`(1) remote. If set, instructs Homebrew to instead use the specified URL.

  * `HOMEBREW_CURLRC`:
    If set, Homebrew will not pass `-q` when invoking `curl`(1), which disables
    the use of `curlrc`.

  * `HOMEBREW_CURL_VERBOSE`:
    If set, Homebrew will pass `--verbose` when invoking `curl`(1).

  * `HOMEBREW_CURL_RETRIES`:
    If set, Homebrew will pass the given retry count to `--retry` when invoking `curl`(1).

  * `HOMEBREW_DEBUG`:
    If set, any commands that can emit debugging information will do so.

  * `HOMEBREW_DEVELOPER`:
    If set, Homebrew will tweak behaviour to be more relevant for Homebrew
    developers (active or budding), e.g. turning warnings into errors.

  * `HOMEBREW_DISPLAY`:
    If set, Homebrew will use this X11 display when opening a page in a browser,
    for example with `brew home`. Primarily useful on Linux.

    *Default:* the value of the user's `DISPLAY` environment variable.

  * `HOMEBREW_DISPLAY_INSTALL_TIMES`:
    If set, Homebrew will print install times for each formula at the end of the run.

  * `HOMEBREW_EDITOR`:
    If set, Homebrew will use this editor when editing a single formula, or
    several formulae in the same directory.

    *Note:* `brew edit` will open all of Homebrew as discontinuous files and
    directories. TextMate can handle this correctly in project mode, but many
    editors will do strange things in this case.

  * `HOMEBREW_FORCE_BREWED_CURL`:
    If set, Homebrew will always use a Homebrew-installed `curl` rather than the
    system version. Automatically set if the system version of `curl` is too old.

  * `HOMEBREW_FORCE_VENDOR_RUBY`:
    If set, Homebrew will always use its vendored, relocatable Ruby version
    even if the system version of Ruby is new enough.

  * `HOMEBREW_FORCE_BREWED_GIT`:
    If set, Homebrew will always use a Homebrew-installed `git`(1) rather than the
    system version. Automatically set if the system version of `git` is too old.

  * `HOMEBREW_GITHUB_API_TOKEN`:
    A personal access token for the GitHub API, used by Homebrew for features
    such as `brew search`. You can create one at <https://github.com/settings/tokens>.
    If set, GitHub will allow you a greater number of API requests. For more
    information, see: <https://developer.github.com/v3/#rate-limiting>

    *Note:* Homebrew doesn't require permissions for any of the scopes.

  * `HOMEBREW_INSTALL_BADGE`:
    Text printed before the installation summary of each successful build.

    *Default:* the beer emoji.

  * `HOMEBREW_LOGS`:
    If set, Homebrew will use the specified directory to store log files.

  * `HOMEBREW_MAKE_JOBS`:
    If set, instructs Homebrew to use the value of `HOMEBREW_MAKE_JOBS` as
    the number of parallel jobs to run when building with `make`(1).

    *Default:* the number of available CPU cores.

  * `HOMEBREW_NO_ANALYTICS`:
    If set, Homebrew will not send analytics. See: <https://docs.brew.sh/Analytics>

  * `HOMEBREW_NO_AUTO_UPDATE`:
    If set, Homebrew will not auto-update before running `brew install`,
    `brew upgrade` or `brew tap`.

  * `HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK`:
    If set, Homebrew will fail on the failure of installation from a bottle
    rather than falling back to building from source.

  * `HOMEBREW_NO_COLOR`:
    If set, Homebrew will not print text with colour added.

  * `HOMEBREW_NO_EMOJI`:
    If set, Homebrew will not print the `HOMEBREW_INSTALL_BADGE` on a
    successful build.

    *Note:* Homebrew will only try to print emoji on OS X Lion or newer.

  * `HOMEBREW_NO_INSECURE_REDIRECT`:
    If set, Homebrew will not permit redirects from secure HTTPS
    to insecure HTTP.

    While ensuring your downloads are fully secure, this is likely
    to cause from-source SourceForge, some GNU & GNOME based
    formulae to fail to download.

  * `HOMEBREW_NO_GITHUB_API`:
    If set, Homebrew will not use the GitHub API, e.g. for searches or
    fetching relevant issues on a failed install.

  * `HOMEBREW_NO_INSTALL_CLEANUP`:
    If set, `brew install`, `brew upgrade` and `brew reinstall` will never
    automatically cleanup the installed/upgraded/reinstalled formulae or all
    formulae every 30 days.

  * `HOMEBREW_PRY`:
    If set, Homebrew will use Pry for the `brew irb` command.

  * `HOMEBREW_SVN`:
    When exporting from Subversion, Homebrew will use `HOMEBREW_SVN` if set,
    a Homebrew-built Subversion if installed, or the system-provided binary.

    Set this to force Homebrew to use a particular `svn` binary.

  * `HOMEBREW_TEMP`:
    If set, instructs Homebrew to use `HOMEBREW_TEMP` as the temporary directory
    for building packages. This may be needed if your system temp directory and
    Homebrew prefix are on different volumes, as macOS has trouble moving
    symlinks across volumes when the target does not yet exist.

    This issue typically occurs when using FileVault or custom SSD configurations.

  * `HOMEBREW_UPDATE_TO_TAG`:
    If set, instructs Homebrew to always use the latest stable tag (even if
    developer commands have been run).

  * `HOMEBREW_VERBOSE`:
    If set, Homebrew always assumes `--verbose` when running commands.

  * `http_proxy`:
    Sets the HTTP proxy to be used by `curl`, `git` and `svn` when downloading
    through Homebrew.

  * `https_proxy`:
    Sets the HTTPS proxy to be used by `curl`, `git` and `svn` when downloading
    through Homebrew.

  * `all_proxy`:
    Sets the SOCKS5 proxy to be used by `curl`, `git` and `svn` when downloading
    through Homebrew.

  * `ftp_proxy`:
    Sets the FTP proxy to be used by `curl`, `git` and `svn` when downloading
    through Homebrew.

  * `no_proxy`:
    Sets the comma-separated list of hostnames and domain names that should be excluded
    from proxying by `curl`, `git` and `svn` when downloading through Homebrew.

## USING HOMEBREW BEHIND A PROXY

Set the `http_proxy`, `https_proxy`, `all_proxy`, `ftp_proxy` and/or `no_proxy`
environment variables documented above.

For example, to use an unauthenticated HTTP or SOCKS5 proxy:

    export http_proxy=http://$HOST:$PORT

    export all_proxy=socks5://$HOST:$PORT

And for an authenticated HTTP proxy:

    export http_proxy=http://$USER:$PASSWORD@$HOST:$PORT

## SEE ALSO

Homebrew Documentation: <https://docs.brew.sh>

Homebrew API: <https://rubydoc.brew.sh>

`brew-cask`(1), `git`(1), `git-log`(1)

## AUTHORS

<%= lead.concat("\n") %>

<%= plc.concat("\n") %>

<%= tsc.concat("\n") %>

<%= linux.concat("\n") %>

<%= maintainers.concat("\n") %>

<%= alumni.concat("\n") %>

## BUGS

See our issues on GitHub:

  * **Homebrew/brew**:
    <https://github.com/Homebrew/brew/issues>

  * **Homebrew/homebrew-core**:
    <https://github.com/Homebrew/homebrew-core/issues>
